package com.keba.lamp.office.exception;

import com.keba.basic.exception.code.BaseExceptionCode;
import lombok.AllArgsConstructor;

/**
 * 40002	用户凭证，即 x-weboffice-token 头, 无效
 * 40003	用户操作权限不足
 * 40004	文档不存在
 * 40005	请求参数错误
 * 40006	存储空间已满
 * 40007	自定义错误，可以用来返回自定义错误信息
 * 40008	文档名称冲突，例如重命名文档时
 * 40009	文档版本不存在
 * 40010	用户不存在
 * 41001	文件未正确上传，例如保存文档时
 * 50001	系统错误导致的请求不能正常响应
 */
@AllArgsConstructor
public enum ExceptionCodeEnum implements BaseExceptionCode {

    /**
     * 用户凭证，即 x-weboffice-token 头, 无效
     */
    USER_TOKEN_INVALID(40002, "用户凭证，即 x-weboffice-token 头, 无效"),
    /**
     * 用户操作权限不足
     */
    USER_OPERATION_PERMISSION_INSUFFICIENT(40003, "用户操作权限不足"),
    /**
     * 文档不存在
     */
    DOCUMENT_NOT_EXIST(40004, "文档不存在"),
    /**
     * 请求参数错误
     */
    REQUEST_PARAMETER_ERROR(40005, "请求参数错误"),
    /**
     * 存储空间已满
     */
    STORAGE_SPACE_FULL(40006, "存储空间已满"),
    /**
     * 自定义错误，可以用来返回自定义错误信息
     */
    CUSTOM_ERROR(40007, "自定义错误，可以用来返回自定义错误信息"),
    /**
     * 文档名称冲突，例如重命名文档时
     */
    DOCUMENT_NAME_CONFLICT(40008, "文档名称冲突，例如重命名文档时"),
    /**
     * 文档版本不存在
     */
    DOCUMENT_VERSION_NOT_EXIST(40009, "文档版本不存在"),
    /**
     * 用户不存在
     */
    USER_NOT_EXIST(40010, "用户不存在"),
    /**
     * 文件未正确上传，例如保存文档时
     */
    FILE_NOT_UPLOADED_CORRECTLY(41001, "文件未正确上传，例如保存文档时"),
    /**
     * 系统错误导致的请求不能正常响应
     */
    SYSTEM_ERROR(50001, "系统错误导致的请求不能正常响应")
    ;

    private final int code;
    private String msg;

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}
